Komandno pokretanje Model Linearizer-a

Odabir i otvaranje Simulink modela
clear all;
 
% Ime fajla
simModel = 'KHN_BPF_v3';
 
% Otvaranje modela u Simulinku
open_system(simModel);
 
Derfinisanje radne tačke
% Kreiranje objekta radne tačke
opspec = operspec(simModel);
 
% Find operating points from specifications or simulation
[op,opreport] = findop(simModel,opspec);
Operating point search report: ---------------------------------
opreport =
Operating point search report for the Model KHN_BPF_v3. (Time-Varying Components Evaluated at time t=0) Operating point specifications were successfully met. States: ---------- Min x Max dxMin dx dxMax _____ _____ _____ _____ _____ _____ (1.) KHN_BPF_v3.C6.vc -Inf 0 Inf 0 0 0 (2.) KHN_BPF_v3.C8.vc -Inf 0 Inf 0 0 0 (3.) KHN_BPF_v3/Solver Configuration /EVAL_KEY/INPUT_1_1_1 -Inf 0 Inf 0 0 0 -Inf 0 Inf 0 0 0 Inputs: None ---------- Outputs: None ----------
Definisanje ulaza i izlaza sistema
% BPF
ioBPF(1) = linio([simModel '/Sine Wave'],1,'input');
ioBPF(2) = linio([simModel '/PS-Simulink Converter 1'],1,'output');
linSimModelBPF = linearize(simModel,ioBPF);
 
% LPF
ioLPF(1) = linio([simModel '/Sine Wave'],1,'input');
ioLPF(2) = linio([simModel '/PS-Simulink Converter 2'],1,'output');
linSimModelLPF = linearize(simModel,ioLPF);
 
Crtanje grafika
% Figure
N = 501;
f = logspace(0, 5, N);
w = 2*pi*f;
figure
hold on;
bodeplot(linSimModelBPF, w);
bodeplot(linSimModelLPF, w);
hold off;
grid on;
box on;
% Ekstrakcija magnitude i faze
[mag,phase] = bode(linSimModelBPF,w);
AdB = 20*log10(mag);
Aref = max(mag)/sqrt(2);
ArefdB = 20*log10(Aref);
figure;
semilogx(f, AdB(:), f,ArefdB*ones(N,1));
grid on;
box on;
xlabel('Frequency [Hz]');
ylabel('A, Aref');
legend('A', 'Aref');